(a) Field of the Invention
The present invention relates generally to communication systems and, more particularly, to an adaptable redundancy scheme, or overlay, for use in communication systems that use forward error correction (FEC) schemes. The present invention also relates to the automatic detection of the use of the redundancy scheme by subscriber units.
(b) Description of Related Art
Many digital cellular systems break time into a number of slots and transmit information in each time slot. For example, a cellular system may break time into six slots, with a different subscriber unit assigned to communicate with a cellular base station during each one of the time slots. The cellular base station may communicate with a first user during a first dedicated time slot, a second user during a second dedicated time slot, and so on for each time slot. After communication is made on the last time slot, the cycle is repeated and communication is made on the first time slot. However, not all of the time slots allocated to subscribers are completely filled with digital communication signals and, therefore, valuable communication time is wasted. This cellular communications configuration, where time is multiplexed between numerous users, is typically referred to as a time division multiple access (TDMA) system. TDMA systems typically use some form of Forward Error Correction (FEC) to minimize the number of communication errors in the system, thereby, improving the communication quality of the system.
Standard IS-136 is the current digital cellular standard used for TDMA systems. FIG. 1 is a diagram showing the FEC scheme for an IS-136 TDMA digital cellular system that uses trellis coding. The IS-136 system includes a speech coder 50 coupled to an IS-136 FEC coder 51, which includes a 7-bit Cyclic Redundency Check (CRC) computation function 52, a rate xc2xd convolutional coder 54, a puncturing function 56, a voice cipher 58, and a 2-slot interleaver 60. The speech coder 50 processes analog voice signals into digital data or bits. The IS-136 FEC scheme uses unequal protection of the speech coder 50 output bits to reduce communication errors. Bits from the speech coder 50 are classified into three distinct categories. The speech coder 50 outputs 48 class Ia bits, which are passed to both the CRC computation function 52 and the rate xc2xd convolutional coder 54. Although a speech coder 50 is disclosed, any digital data source may be used. The class Ia bits, which are the 48 most perceptually significant bits in terms of voice quality, are protected by a 7-bit CRC, which is, generated by the CRC computation function 52, and the rate xc2xd conditional code. The speech coder 50 also outputs 48 class Ib outputs, which are passed to, and protected by, the rate xc2xd convolutional coder 54. Additionally, the speech coder 50 produces 52 class II bits that are not protected in any way. The class II bits are perceptually the least significant bits used in the system.
The class Ia bits, class Ib bits, the 7-bit CRC, and 5 tail bits, which are used to terminate a trellis, are processed by the rate xc2xd convolutional coder 54. As will be appreciated by one skilled in the art, a trellis code is a digital communication coding scheme. The rate xc2xd convolutional coder 54 produces 216 encoded bits from the 108 bit input. The output of the rate xc2xd convolutional coder 54 is coupled to a puncturing function 56, which punctures (deletes) 8 bits, thereby creating a 208 bit output. The output of the puncturing function 56 and the 52 class II output from the speech coder 50 are coupled to a voice cipher 58. The voice cipher 58 performs data encryption on the 260 bits to create 260 encoded bits. The output of the voice cipher 58 is coupled to the 2-slot interleaver 60, which reorders the encoded bits of two slots in order to randomize any burst errors that may be as seen by the channel decoder. In order to meet system usage and quality of service requirements, there will often be idle time slots where no data communications take place.
Due to advances in technology and other market factors, there is a movement in the digital cellular industry to modify standard IS-136 in order to make use of any idle time slot period. The proposed modification to IS-136 is known generally as the ADVICE system. The ADVICE system allows a cellular base station to transmit auxiliary information (bits) in idle or auxiliary time slot periods. The auxiliary coded information is redundant information that assists certain subscriber units in accurately receiving communications sent from a cellular base station, thereby, resulting in higher voice quality at the subscriber unit.
Although the ADVICE system proposes utilizing unused time slots to transmit auxiliary information, the ADVICE system does not specify any manner in which the auxiliary information is to be generated. Digital communication systems such as cellular systems typically use trellis coding, a process by which each bit that is input into an encoder results in the transmission of multiple coded bits.
Trellis coding is typically implemented using convolutional codes or multiple trellis coded modulation codes. Rate-compatible families of such codes are well known for their suitability in adaptive FEC and automatic repeat request (ARQ) protocols.
Currently, multiple rate codes are typically generated by puncturing a base code. Puncturing a code consists of removing selected coded bits from the transmission stream. For example, a rate xc2xc encoder generates four coded bits for each data bit that is to be broadcast. If a certain number of coded bits are deleted, the effective rate of the code becomes higher than xc2xc. When a communication channel is unfavorable, all coded bits from the base code are transmitted. However, as the channel quality improves, fewer of the encoded bits are transmitted, thereby raising the effective rate of the code. That is, as the channel improves, the puncture rate increases.
One approach to providing the auxiliary information to subscriber units is through traditional concatenated coding schemes. Concatenated coding schemes typically use a high rate BCH or Reed-Solomon codes as an outer code. However, the use of this approach in the ADVICE system would increase subscriber unit complexity because each subscriber unit would require a BCH/Reed-Solomon decoder, which the subscriber units do not presently have, as it is not part of the current IS-136 standard. Additionally, performance issues with concatenated coding include a lack of optimal maximum likelihood decoders and the severe nature of Rayleigh fading channels, which is typical of mobile cellular systems. The implementation of a concatenated coding scheme would require significant changes to the IS-136 coding scheme, thereby adversely affecting backward compatibility. Because the IS-136 standard is used by so many communication systems, it is necessary that the implementation of the ADVICE system maintain backward compatibility with current cellular communication systems.
Once auxiliary information is available to the various subscriber units in a communication system, each subscriber unit must determine when auxiliary information is available for its use. Auxiliary information is always present in an auxiliary time slot, however, that auxiliary information is only useful to a single subscriber unit. Signaling from the cellular base station to the subscriber unit is one way to inform a subscriber unit that useful auxiliary information is available. However, signaling is not desirable because it uses valuable communication bandwidth to transfer the signaling information. Automatic, or autonomous, blind detection of auxiliary information is desirable because signaling overhead is eliminated.
One method of autonomous blind detection is represented in FIG. 2, which shows two stages of decoding that may be used by a particular subscriber unit to detect the presence of useful auxiliary information. The method is based on the assumption that the data transmitted on the auxiliary time slot is from a different trellis encoding of the same information bits as sent on the subscriber unit""s primary IS-136 time slot. The received data from the two different encodings (auxiliary and primary time slots) can be decoded together by a single trellis decoder, using for example the Viterbi algorithm. In the first decoding stage a first Viterbi decoder 70 combines information from a time slot dedicated to the subscriber unit and the auxiliary information from an auxiliary time slot (e.g., an ADVICE time slot). The output of the first Viterbi decoder 70 is a decoded bitstream. The bitstream is coupled to a first cyclic redundancy check (CRC) function 72 that performs a CRC on the decoded bitstream. If the bitstream passes the CRC, the subscriber unit concludes that the auxiliary information was intended for its use and outputs the decoded information bits. This conclusion is reliable since the probability that the decoded bit stream will pass the CRC test is extremely low if the auxiliary data were not intended for the subscriber unit.
If the CRC performed by the first CRC function 72 fails, control is passed to a second Viterbi decoder 74. The second Viterbi decoder 74 decodes only the information contained in the dedicated time slot to create a bitstream. The bitstream is coupled from the second Viterbi decoder 74 to a second CRC function 76. The second CRC function 76 performs a CRC on the decoded bit stream. If the decoded bit stream passes the second CRC, the decoded information is output. Otherwise, the subscriber unit decides that the decoded information is incorrect and declares a frame error has occurred.
The two-stage decoding method shown in FIG. 2 clearly requires a significant increase in decoder processing. Accordingly, there is a need for a method of generating and selecting auxiliary data bits to be sent during idle, or auxiliary, time slot periods in the ADVICE communication system. It is necessary that the ADVICE system maintain backward compatibility with current IS-136 systems, while not requiring additional complexity in the subscriber unit. Additionally, there is a need for a method that allows a subscriber unit to autonomously and blindly detect the presence of useful auxiliary information in an auxiliary time slot in an efficient manner.
The present invention is embodied in a method for use in a receiver in a communication system for determining if useful auxiliary data is available in an auxiliary time slot that is related to a dedicated time slot. The method includes the steps of obtaining auxiliary data related to the auxiliary time slot, obtaining dedicated data related to the dedicated time slot, calculating a metric that compares the auxiliary data to the dedicated data and comparing the metric to a threshold. The method further includes the step of determining whether the auxiliary data is useful auxiliary data based on the comparison between the metric and the threshold.
In some embodiments of the method if the metric exceeds the threshold, the auxiliary data is determined to be useful auxiliary data. Alternatively, in other embodiments if the metric does not exceed the threshold, the auxiliary data is determined to be not useful auxiliary data.
In other embodiments, the threshold is adapted in accordance with a status of the communication link and the threshold can assume one of a plurality of discrete levels, each of the plurality of discrete levels being indicative of a different degree of agreement between the auxiliary data and the auxiliary data.
In some embodiments, the plurality of discrete levels may be modeled by a finite state machine that interrelates the plurality of discrete levels based on operating conditions of the communication link.
In some embodiments, the finite state machine includes an expectant state indicating that the communication link has become poor and the useful auxiliary data are likely to become available to the receiver and an enhanced state indicating that the useful auxiliary data are being and are likely to continue to be received.
The present invention may also be embodied in an apparatus for use in a communication system having a communication link for determining if useful auxiliary data is available in an auxiliary time slot that is related to a dedicated time slot. The apparatus may include a receiver for obtaining auxiliary data related to the auxiliary time slot and for obtaining dedicated data related to the dedicated time slot a computation function for calculating a metric by comparing the auxiliary data to the dedicated data and a threshold comparator for comparing the metric to a threshold and for determining whether the auxiliary data is useful auxiliary data based on the comparison between the metric and the threshold.
In some embodiments the threshold is adapted in accordance with a status of the communication link.
In other embodiments, the threshold can assume one of a plurality of discrete levels, each of the plurality of discrete levels being indicative of a different degree of agreement between the auxiliary data and the auxiliary data.
In certain embodiments, the plurality of discrete levels may be modeled by a finite state machine that interrelates the plurality of discrete levels based on the operating conditions of the communication link.
In some embodiments, the finite state machine may include an expectant state indicating that the communication link has become poor and the useful auxiliary data are likely to become available to the receiver and an enhanced state indicating that the useful auxiliary data are being and are likely to continue to be received.
The invention itself, together with further objects and attendant advantages, will best be understood by reference to the following detailed description, taken in conjunction with the accompanying drawings.